English Drapeau English Italiano Drapeau Italiano Español Drapeau Español Français Drapeau Français Deutsch Drapeau Deutsch Português Drapeau Português Ελληνικά Drapeau Ελληνικά Nederlands Drapeau Nederlands Polski Drapeau Polski Čeština Drapeau Čeština 中文 Drapeau 中文 日本語 Drapeau 日本語 हिन्दी Drapeau हिन्दी اللغة العربية Drapeau اللغة العربية Русский Drapeau Русский Українська Drapeau Українська עִברִית Drapeau עִברִית Türk Drapeau Türk Latvietis Drapeau Latvietis Dansk Drapeau Dansk Norsk Drapeau Norsk Íslenska Drapeau Íslenska 한국어 Drapeau 한국어 Suomen Drapeau Suomen Gaeilge Drapeau Gaeilge Bahasa Melayu Drapeau Bahasa Melayu Svenska Drapeau Svenska
Utilisateur IcôneConnexion
Français Drapeau Français

Connexion

 

Fonctions et scripts (champ Formule)

Comment utiliser les fonctions Minimum/Maximum, Ceil up/Ceil down (arrondir) et les scripts Ruby

Contenu

Fonctions minimum/maximum
Fonctions de montée/descente du plafond
Scripts (Ruby)
Opérateurs arithmétiques et conditionnels
Fonctions mathématiques
Fonctions de chaîne

Conseils et astuces

Tri des enregistrements
Calculs complexes
Compter les dates à l'aide de scripts
Lien vers la vue d'enregistrement

no_image

Fonctions minimum/maximum

Voyons comment fonctionnent les fonctions, en utilisant la table des produits comme exemple.

Ce tableau contient les colonnes suivantes:
Nom de la marque et modèle;
Image;
Prix pour juin, juillet et août.

La tâche consiste à afficher le prix le plus bas pour les trois mois.

Table pour casque

La première étape consiste à ajouter le champ Formule au formulaire.

Créer une formule

Sélectionnez «Fonction» dans la première liste déroulante :

Sélectionner la fonction

Sélectionnez «Minimum» dans la deuxième liste déroulante:

Sélectionnez le minimum

Ensuite, vous devez sélectionner les champs à comparer. Dans ce cas, il s'agit de trois champs de prix.
Et cliquez sur le bouton «Créer».

sélectionner les champs à comparer

Le champ «Prix le plus bas» est désormais apparu dans notre tableau, qui compare les trois valeurs de l'enregistrement et affiche le minimum d'entre elles :

Casques audio à prix mini

La fonction «Maximum» fonctionne exactement à l’opposé.

 

Fonctions de montée/descente du plafond

Considérez les fonctions «Ceil up» et «Ceil down». Voici un tableau avec les clients et leurs commandes.

La tâche consiste à arrondir la valeur dans la colonne «Montant à payer».

tableau avec colonne Montant à payer

Créez un nouveau champ de formule et sélectionnez la fonction « Ceil up » (ou « Ceil down ») ;

Ensuite, vous devez sélectionner le champ requis dans la liste déroulante et spécifier la signification.

Fonction de montant arrondi

En conséquence, nous obtenons une colonne avec un montant arrondi:

colonne avec un montant arrondi

 

Scripts (Ruby)

Les scripts vous permettent d'effectuer des opérations logiques et arithmétiques.

Nous utiliserons le tableau « Ventes d'été » comme exemple. Ce tableau contient une colonne avec un responsable, sa durée de travail et la somme des ventes de l'été.

Soldes d'été

Créons un nouveau champ Formule, sélectionnons l’option Fonction et l’élément Script (Ruby) dans la liste suivante.

Vous pouvez utiliser les noms de champs HTML comme opérandes.

Cliquez sur le lien sous le champ de fonction «Comment insérer des données d'enregistrement»:

Comment insérer des données

Une liste des champs disponibles s'affiche. Sélectionnez un champ dans la liste et copiez le nom HTML:

Une liste des champs disponibles

Vous pouvez également modifier le nom du champ HTML ici. Il suffit de saisir un nouveau nom et de cliquer sur le bouton « Mettre à jour » :

changer le nom du champ HTML

Les opérateurs arithmétiques et conditionnels suivants sont disponibles:


(+) addition

(-) soustraction

(*) multiplication

(/) division

(>) vrai, si l'opérande de gauche est supérieur à celui de droite

(<) vrai, si l'opérande de gauche est inférieur à celui de droite

(%) modulo division

(==) vrai, si les valeurs des deux opérandes sont les mêmes.


Opérateurs conditionnels:

(if) utilisé pour tester si une condition est vraie. Les valeurs de condition false et nil sont fausses, tandis que toutes les autres seront vraies.

(elsif) utiliser pour des conditions supplémentaires.

(||) utilisé pour tester plusieurs conditions.

 


Revenons à l'exemple précédent. La tâche consiste à calculer le bonus des managers.

Supposons que le taux de bonus dépend de plusieurs facteurs. Le premier est l'expérience professionnelle dans l'entreprise.

Créons le script suivant:

 

if work_months > 12

  300

 

Cela signifie que si un employé travaille dans l'entreprise depuis plus de 12 mois, il recevra une prime de 300 $.

Créons une autre condition. Si le manager a réalisé plus de 7 000 ventes, il recevra 150 $ + 25 %.

Le script devrait ressembler à ceci:

elsif sales > 7000
 (150*0.25)+150

Dans tous les autres cas, le bonus sera de 150 $

else
 150

Il est nécessaire de spécifier end, pour que le script fonctionne correctement.

 

script pour calculer les bonus

 

Nous pouvons maintenant calculer le bonus pour chaque manager:

Tableau avec bonus

Méthodes et opérateurs disponibles: to_f, to_i, to_s, round, floor, ceil, ceiling_up, ceiling_down, include?, if, elsif, else, end.
Pour vérifier si le champ contient une valeur spécifique, vous pouvez également utiliser l'élément [ ].

Exemple d'utilisation:

if 'supplies' ['stock']
   true
else
   false
end

Vous pouvez également utiliser deux variables : a et b

En plus des opérateurs arithmétiques, vous pouvez utiliser des fonctions trigonométriques, logarithmiques, transcendantes et des racines de base. Les fonctions doivent être écrites comme suit : Math::function(Field_name). Par exemple, Math::acos(Field_csIfon). Liste détaillée des fonctions mathématiques :

Fonctions trigonométriques

(::cos) Renvoie le cosinus de l'argument donné.
(::sin) Renvoie le sinus de l'argument donné.
(::tan) Renvoie la tangente de l'argument donné.

Fonctions trigonométriques inverses

(::acos) Renvoie l'arc cosinus de l'argument donné.
(::asin) Renvoie l'arc sinus de l'argument donné.
(::atan) Renvoie l'arc tangente de l'argument donné.
(::atan2) Renvoie la tangente arg de deux arguments donnés.

Fonctions trigonométriques hyperboliques

(::cosh) Renvoie le cosinus hyperbolique de l'argument donné.
(::sinh) Renvoie le sinus hyperbolique de l'argument donné.
(::tanh) Renvoie la tangente hyperbolique de l'argument donné.

Fonctions trigonométriques hyperboliques inverses

(::acosh) Renvoie le cosinus hyperbolique inverse de l'argument donné.
(::asinh) Renvoie le sinus hyperbolique inverse de l'argument donné.
(::atanh) Renvoie la tangente hyperbolique inverse de l'argument donné.

Fonctions d'exponentiation et logarithmiques

(::exp) Renvoie la valeur d'une valeur donnée élevée à une puissance donnée.
(::log) Renvoie le logarithme d'une valeur donnée dans une base donnée.
(::log10) Renvoie le logarithme en base 10 de l'argument donné.
(::log2) Renvoie le logarithme en base 2 de l'argument donné.

Fonctions de fraction et d'exposant

(::frexp) Renvoie la fraction et l'exposant de l'argument donné.
(::ldexp) Renvoie la valeur d'une fraction et d'un exposant donnés.

Fonctions de la racine

(::cbrt) Renvoie la racine cubique de l'argument donné.
(::sqrt) Renvoie la racine carrée de l'argument donné.

Fonctions d'erreur

(::erf) Renvoie la valeur de la fonction d'erreur de Gauss pour l'argument donné.
(::erfc) Renvoie la valeur de la fonction d'erreur complémentaire pour l'argument donné.

Fonctions gamma

(::gamma) Renvoie la valeur de la fonction gamma pour l'argument donné.
(::lgamma) Renvoie la valeur de la fonction gamma logarithmique pour l'argument donné.

Fonction hypoténuse

(::hypot) Renvoie sqrt(a**2 + b**2) pour les valeurs a et b données.

Fonctions de chaîne

Vous pouvez mettre le texte en majuscule de cette façon:
fonction de capitalisation
Assurez-vous de citer votre variable, puis d'utiliser la fonction «capitalize».

 

Conseils et astuces

Voici quelques exemples de la manière dont vous pouvez simplifier votre travail à l'aide de fonctions.

Nous avons un tableau de candidats à l'emploi:

Candidats à un emploi

La tâche consiste à répartir les candidats en trois groupes : un candidat approprié, un candidat de réserve et un candidat inadapté.

Nous pouvons utiliser le formulaire de recherche, mais nous devrons alors utiliser tous les critères:

Recherche candidat

Un champ de formule avec une fonction vient à la rescousse. Créons une nouvelle formule « Sélection ».

Nous devons diviser les candidats en trois groupes conditionnels.

Si le candidat a :

- Âge inférieur à 45 ans ;

- Éducation supérieure ;

- Expérience professionnelle supérieure à 5 ans ;

- Une recommandation d'un employeur précédent, alors ce candidat reçoit le statut « Convient ».

Pour le groupe « Réserve », un candidat doit avoir moins de 50 ans, une éducation supérieure ou tertiaire et plus de 5 ans d'expérience professionnelle.

Tous les autres candidats reçoivent le statut « Inadapté ».

 

 

Écrivons le code suivant pour la fonction:

if age<45 && "education" == "Supérieur" && exp>5 && "recommend" == "Oui"
   "Appropriée"
elsif age<50 && "education" == "Supérieur" || "Tertiaire" && exp>5
   "Réserve"
else
   "Inappropriée"
end

Attention: les valeurs numériques (y compris les noms de champs HTML) ne sont pas entre guillemets. Les guillemets ne sont utilisés que pour les valeurs de chaîne.

fonction de sélection

Comme vous pouvez le voir dans la capture d'écran suivante, chaque candidat s'est vu attribuer un statut en fonction des critères:

candidats avec une nouvelle colonne de script de statut

Il est beaucoup plus facile de rechercher sur un seul champ plutôt que sur plusieurs critères:

Recherche par colonne de fonction

La même chose avec la mise en forme conditionnelle dans un tableau:

Mise en forme conditionnelle par fonction

Nous utilisons le champ « Sélection » pour formater les enregistrements dans la table:

tableau avec mise en forme conditionnelle

Il est beaucoup plus pratique de générer un rapport après avoir effectué une recherche ou un regroupement par champ:

Création du rapport

Qui contient tous les candidats selon des critères sélectionnés:

rapport

N'oubliez pas les actions conditionnelles et le champ Action.

Par exemple, créez un bouton avec l'action « Envoyer un e-mail », qui est disponible uniquement dans l'enregistrement avec les candidats « appropriés ».

Colonne avec critères d'action par fonction

Un champ de fonction peut être utilisé comme critère dans les règles de champ.

Par exemple, activez le champ « Sélection » sur le formulaire:

activer le champ « Sélection » sur le formulaire

Ensuite, créons un nouveau champ « Ajouter à la file d'attente » (bouton radio) avec un choix de deux valeurs:

nouveau bouton radio

Créez une règle.

Si le champ « Sélection » contient « Réserver », affichez le champ « Ajouter à la file d'attente »:

Condition de règle

Action de la règle

Voilà à quoi cela ressemble sur le formulaire:

Règle de champ par condition de fonction en action

Ces fonctions permettront non seulement une gestion plus efficace des données, mais aussi des calculs plus complexes.

Prenons par exemple un tableau de définition des bénéfices:

Tableau de définition du profit

La tâche consiste à calculer le bénéfice total.

La formule ressemble à ceci : bénéfice total = revenu - coût total

Si nous effectuons un tel calcul à l'aide de formules standard, nous devrons alors diviser le calcul en plusieurs formules (calculer séparément le revenu et le coût total).

À l'aide des fonctions Ruby, vous pouvez effectuer ce calcul dans un seul champ:

(sell_price*quantity)-(buy_cost*quantity)

Fonction de profit total

Bénéfice total dans le tableau:

Bénéfice total dans la colonne du tableau

Attention: pour un calcul correct, vous devez utiliser le type de champ « Décimal ».

 

Compter les jours entre les dates

Par exemple, nous utiliserons un tableau avec des contrats.

Tâche: afficher le nombre de jours pendant lesquels le contrat prendra fin.

Tableau des contrats

Créez le script suivant:

exp_date.mjd - DateTime.now

Où:

exp_date - html nom du champ.

.mjd méthode -convertit la date au format du calendrier julien.

DateTime.now - objet dont la valeur est la date et l'heure locales actuelles.

Fonction jours restants

En conséquence, nous obtenons une colonne avec le nombre de jours jusqu’à la fin du contrat.

tableau avec colonne de gauche des jours

Voici un autre exemple.

Tâche : déterminer l'année de naissance en ne connaissant que l'âge d'une personne.

Créez le script suivant:

DateTime.year - age

Où:

age - html nom du champ.

DateTime.year - objet dont la valeur est l'année en cours.

Fonction année d'anniversaire

En conséquence, nous obtenons une colonne avec l’année de naissance de chaque personne.

Tableau avec l'année de naissance de chaque personne

Lien vers la vue d'enregistrement

À l'aide du script, vous pouvez créer un lien vers la vue d'enregistrement. Accédez au menu « Enregistrements » et ouvrez la vue d'enregistrement.

comment ouvrir la vue d'enregistrement

Copiez le lien dans la barre d'adresse:

Copiez le lien dans la barre d'adresse

Créez un champ de formule. Sélectionnez « Script (Ruby) » dans la liste. Vous devez utiliser la variable « a » et un lien d'enregistrement de l'étape précédente (écrit entre guillemets). Remplacez l'ID d'enregistrement par « Numéro d'identification d'entrée » de la liste par la valeur |internal_id| :

Lien vers la fonction d'enregistrement

Ainsi, vous obtiendrez un lien vers l'enregistrement dans la table:

lien vers l'enregistrement dans la table

Vous pouvez utiliser un lien vers le widget Enregistrement de la même manière:


lien vers le widget Enregistrement